//
//  ZTTableView.m
//  DianYing5
//
//  Created by uskr on 15/7/15.
//  Copyright (c) 2015年 uskr. All rights reserved.
//

#import "ZTTableView.h"

@implementation ZTTableView 
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

-(ZTTableView*)initWithFrame:(CGRect)rect
                   withStyle:(UITableViewStyle)style;
{
    self = [super initWithFrame:rect style:UITableViewStylePlain];
    
    if(self)
    {
            //使从父类继承的协议对象(即代理对象)指向子类，在子类中实现父类的协议方法
            self.delegate = self;
            self.dataSource = self;
    }
    
    return self;
}


//设置每一组的行数
-(NSInteger)tableView:(ZTTableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    if(self.numberOfRowsInSection)
    {
        return self.numberOfRowsInSection(section);
    }
    
    return 10;
}

-(UITableViewCell*)tableView:(ZTTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(self.customizeCell)
    {
        return self.customizeCell(tableView, indexPath);
    }
    
    static NSString *pool = @"cell" ;
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:pool];

    if(cell == nil)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:pool];
    }
    else
    {
        // 重用问题解决方案：如果Ｃｅｌｌ不是新创建的，则把Ｃｅｌｌ中的内容清除掉再添加新内容
        for(UIView *view in cell.contentView.subviews)
        {
            [view removeFromSuperview ];
        }
    }
    
    if(self.addContentIntoCell)
    {
        return self.addContentIntoCell(cell, indexPath);
    }
    
    return cell;
    
}

-(CGFloat)tableView:( UITableView *)tableView heightForRowAtIndexPath:( NSIndexPath *)indexPath
{
    if(self.heightForRowAtIndexPath)
    {
        
        return self.heightForRowAtIndexPath(indexPath);
        
    }
    
    return 44;
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    
    if(self.numberOfSectionsInTableView != 0)

        return self.numberOfSectionsInTableView(tableView);
    
    return 1;
    
}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(self.heightForHeaderInSection)
        return self.heightForHeaderInSection(tableView, section);
    return 1;
}

-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if(self.viewForHeaderInSection)
        return self.viewForHeaderInSection(tableView, section);
    return nil;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(self.didSelectRowAtIndexPath)
        self.didSelectRowAtIndexPath(tableView, indexPath);
}


@end




